Градиентные методы

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Градие́нтные ме́тодычисленные методы решения с помощью градиента задач, сводящихся к нахождению экстремумов функции.

Постановка задачи решения системы уравнений в терминах методов оптимизации[править | править код]

Задача решения системы уравнений:

(1)

с эквивалентна задаче минимизации функции

(2)

или какой-либо другой возрастающей функции от абсолютных величин невязок (ошибок) , . Задача отыскания минимума (или максимума) функции переменных и сама по себе имеет большое практическое значение.

Для решения этой задачи итерационными методами начинают с произвольных значений и строят последовательные приближения:

или покоординатно:

(3)

которые сходятся к некоторому решению при .

Различные методы отличаются выбором «направления» для очередного шага, то есть выбором отношений

.

Величина шага (расстояние, на которое надо передвинуться в заданном направлении в поисках экстремума) определяется значением параметра , минимизирующим величину как функцию от . Эту функцию обычно аппроксимируют её тейлоровским разложением или интерполяционным многочленом по трем-пяти выбранным значениям . Последний метод применим для отыскания max и min таблично заданной функции .

Градиентные методы[править | править код]

Основная идея методов заключается в том, чтобы идти в направлении наискорейшего спуска, а это направление задаётся антиградиентом: :

,

где выбирается:

  • постоянной, в этом случае метод может расходиться;
  • дробным шагом, то есть длина шага в процессе спуска делится на некое число;
  • наискорейшим спуском: .

Метод наискорейшего спуска (метод градиента)[править | править код]

Выбирают , где все производные вычисляются при , и уменьшают длину шага по мере приближения к минимуму функции .

Для аналитических функций и малых значений тейлоровское разложение позволяет выбрать оптимальную величину шага

, (5)

где все производные вычисляются при . Параболическая интерполяция функции может оказаться более удобной.

Алгоритм[править | править код]

  1. Задаются начальное приближение и точность расчёта
  2. Рассчитывают , где
  3. Проверяют условие останова:
    • если , то и переход к шагу 2;
    • иначе и останов.

Метод покоординатного спуска Гаусса — Зейделя[править | править код]

Этот метод назван по аналогии с методом Гаусса — Зейделя для решения системы линейных уравнений. Улучшает предыдущий метод за счёт того, что на очередной итерации спуск осуществляется постепенно вдоль каждой из координат, однако теперь необходимо вычислять новые раз за один шаг.

Алгоритм[править | править код]

  1. Задаются начальное приближение и точность расчёта
  2. Рассчитывают , где
  3. Проверяют условие остановки:
    • если , то и переход к шагу 2;
    • иначе и останов.

Метод сопряжённых градиентов[править | править код]

Метод сопряженных градиентов основывается на понятиях прямого метода многомерной оптимизации — метода сопряжённых направлений.

Применение метода к квадратичным функциям в определяет минимум за шагов.

Алгоритм[править | править код]

  1. Задаются начальным приближением и погрешностью:
  2. Рассчитывают начальное направление:
    • Если или , то и останов.
    • Иначе
      • если , то и переход к 3;
      • иначе и переход к 2.

См. также[править | править код]

Литература[править | править код]

  • Акулич И.Л. Математическое программирование в примерах и задачах: Учеб. пособие для студентов эконом. спец. вузов. — М.: Высш. шк., 1986.
  • Гилл Ф., Мюррей У., Райт М. Практическая оптимизация. Пер. с англ. — М.: Мир, 1985.
  • Коршунов Ю.М., Коршунов Ю.М. Математические основы кибернетики. — М.: Энергоатомиздат, 1972.
  • Максимов Ю.А.,Филлиповская Е.А. Алгоритмы решения задач нелинейного программирования. — М.: МИФИ, 1982.
  • Максимов Ю.А. Алгоритмы линейного и дискретного программирования. — М.: МИФИ, 1980.
  • Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. — М.: Наука, 1970. — С. 575-576.